package a14_Sort;

/**
 * @Author quan
 * @Description 冒泡排序
 * @Date 2023/4/28 19:42
 */
public class BubbleSort {
    public static void main(String[] args) {
        /**
         * 冒泡排序：相邻的元素两两比较，大的放在右边，小的方左边。每比较完成一次，比较的元素中的最大值已经放在了最右边。
         */
        int[] arr = {2,4,5,3,1};
        //注意这里的i的索引范围，不能越界
        //外层for循环表示要执行多少轮
        for (int i = 0; i < arr.length-1; i++) {
            //内层for循环表示要比较的区间范围
            for (int j = 0; j < arr.length-1-i; j++) {
                if(arr[j] > arr[j+1]){
                    swap(arr,j,j+1);
                }
            }
        }
        printArr(arr);
    }
    // Ctrl alt m抽取为一个方法
    private static void printArr(int[] arr) {
        //打印数组
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

    private static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
}
